import matplotlib.pyplot as plt
import numpy as np

# 定义类别
categories = ["Category A", "Category B", "Category C", "Category D"]

# 定义三组数据
data1 = [5, 20, 15, 10]
data2 = [10, 10, 5, 15]
data3 = [15, 5, 10, 5]

# 绘制三个数据集的条形图，每个数据集使用不同的颜色，并分别设置标签
plt.barh(categories, data1, color="blue", label="Data 1")
plt.barh(categories, data2, color="green", label="Data 2")
plt.barh(
    categories, data3, color="red", label="Data 3", left=data1
)  # 堆叠数据3在数据1上

# 由于我们只需要两个标签，我们可以通过调整条形图的绘制顺序来控制图例的显示
# 这里我们将data2和data3堆叠在data1上，但只保留data1和data3的标签

# 添加图例
# 由于我们只希望在图例中看到两个标签，我们可以通过选择性地调用plt.barh来实现
# 这里我们只调用了两次plt.barh，所以图例中只会有两个条目
plt.legend(loc="best")

# 添加标题和轴标签
plt.title("Three Data Sets with Two Labels in Legend")
plt.xlabel("Values")
plt.ylabel("Categories")

# 显示图形
plt.show()
